package com.ycyoes.demos.geetime.algorithm.chapter8;

/**
 * 基于数组实现的顺序栈
 *
 * @author ycyoes
 * @date 2021-07-30 11:23
 */
public class ArrayStack {
    private String[] items; //数组
    private int count;  //栈中元素个数
    private int n;  //栈的大小

    //初始化数组，申请一个大小为n的数组空间
    public ArrayStack(int n) {
        this.items = new String[n];
        this.n = n;
        this.count = 0;
    }

    //入栈操作
    public boolean push(String item) {
        //数组空间不够了，直接返回false,入栈失败
        if (count == n) return false;
        //将item放到下标为count的位置，并且count加一
        items[count] = item;
        ++count;
        return true;
    }

    //出栈操作
    public String pop() {
        //栈为空，则直接返回null
        if (count == 0) return null;
        //返回下标为count-1的数组元素，并且栈中元素个数count减一
        String tmp = items[count-1];
        --count;
        return tmp;
    }


}
